/* package java.xiao.trip.ws;

import org.springframework.stereotype.Component;


import javax.servlet.http.HttpSession;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.xiao.trip.utils.MessageUtils;

@ServerEndpoint("/chat")
@Component//给spring管理
public class chat {
    //用来存储每一个客户端对象对应的chat对象，可以用同一个容器
    private static Map<String,chat> onlineUsers=new ConcurrentHashMap<>();
    //声明session对象，通过该对象可以发送消息给指定的用户，每一个chat都需要一个session对象
    private Session session;
    //声明一个HttpSession对象，之前在HttpSession中存储的有用户名
   private HttpSession httpSession;
    @OnOpen
    public void onOpen(Session session, EndpointConfig config)//连接建立时被调用
    {
      this.session=session;
      //获取httpSession对象
        HttpSession httpSession=(HttpSession) config.getUserProperties().get(HttpSession.class.getName());
        this.httpSession=httpSession;
        //从httpSession对象中获取用户名
        String username=(String)httpSession.getAttribute("user");
        //将当前对象存储在容器中
        onlineUsers.put(username,this);
        //将当前在线用户的用户名推送给客户端
        //1.获取消息.MessageUtils工具类
        MessageUtils.getMeaasge(true,null,getNames());
        //2.调用方法进行系统消息的推送
        broadcastAllUsers(message);
    }

    @OnMessage
    public void onMessage(String message,Session session)//接收到客户端发送的数据会被自动调用
    {

    }
    @OnClose
    public void onClose(Session session)//连接关闭时被调用
    {

    }

}*/
